package com.example.section3.pojo;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class Teacher {

    /*
    在@Value注解中：
        1）利用 ${}  声明的为插值表达式，是将环境配置中的属性拿来

        2）利用 #{}  声明的内部为el表达式
     */
    //将 '王老师' 这个字符串赋值给name
    @Value("#{'王老师'}")
    private String name;

    //将23赋值给age
    @Value("23")
    private Integer age;

    //从环境配置中找到 teacher.address 的值交给address属性
    @Value("${teacher.address}")
    private String address;

    //将 10.2+30.6 的运算结果赋值给money
    @Value(value = "#{10.2+30.6}")
    private Float money;

    // 利用el表达式的 eq 判断'666'与'666'两个字符串是否相等
    @Value(value = "#{'666' eq '666'}")
    private Boolean isHappy;

    //#{...} 内部代表el表达式
    // T(...) 内部代表要导入的类，尽量使用全类名
    @Value(value = "#{T(java.lang.System).currentTimeMillis()}")
    private Long time;

}
